Webサービスのエラー監視について②
はじめに
こんにちは。 ネクストモード株式会社 のharuです。
ネクストモードではMackerelをベースとしたAWSの監視・障害対応を実施する「運用アシスタント」サービスを提供しており、私は該当サービスの企画担当をしています。
前回 はHTTPステータスコードが500、502をわざと発生させてみましたが今回は503、504を発生させてみました。
1.構成
前回と同じWebサーバー、APサーバ、DBサーバのWeb3層構造で、WebサーバーはApacheを利用しています。
2.HTTPステータスコードのエラー検証
下記のエラーコードをわざと発生させてみました。
①503 Service Unavailable
②504 Gateway Timeout
3.503 Service Unavailable
サービスが利用できないときに出るエラーで、一時的な高負荷やアクセス多寡で処理が出来ない場合などがあり、今回はAWS マネジメントコンソール上でEC2(Web)を停止しました。
※今回はEC2の停止方法は割愛します
ブラウザでWebサイトにアクセスした結果
下記の通り「503」エラーが発生しました。
Mackerelの結果
MackerelでALBの「HTTP Code Count」で5XXがカウントアップしてます。
4.504 Gateway Timeout
サーバーからの応答がなくタイムアウトした場合に発生します。今回はALBのタイムアウトを10秒にし、さらにPHPの処理で20秒待機(WAIT)させました。
これによりALBはPHPから応答がなくタイムアウトになります。
参考に以下がPHPで20秒待機させるために実施した設定です。
■/var/www/html/index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
**sleep(20);**
echo "20sec wait";
?>
</body>
</html>
ブラウザでWebサイトにアクセスした結果
下記の通り「504」エラーが発生しました。
Mackerelの結果
MackerelでALBの「HTTP Code Count」で5XXがカウントアップしてます。
5.まとめ
今回はHTTPステータスコードの503、504をわざと発生させてMackerelで監視できていることを確認しました。
具体的なステータスコードを確認することで原因を調査し、エラーが発生しないように設定の見直しをして頂ければと思います。
Webサイトは一般的なものだからこそ、監視・障害対応で苦労されている方も多いはずです。Webサイトの企画に注力したいけど、アラート通知が多くて困っている、サイト構築に手一杯で監視・障害対応を考える余裕がないなど、Webサイトの監視・障害対応で悩んでいる方は弊社サービスの 運用アシスタント までお気軽にご相談いただければと思います。